home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / X11R4 / cmds / X / ddx / Xsun / RCS / sunKeyMap.c,v < prev    next >
Encoding:
Text File  |  1990-03-04  |  22.0 KB  |  573 lines

  1. head     1.1;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.1
  10. date     90.02.16.17.40.18;  author tve;  state Exp;
  11. branches ;
  12. next     ;
  13.  
  14.  
  15. desc
  16. @Original X11R4 distribution
  17. @
  18.  
  19.  
  20.  
  21. 1.1
  22. log
  23. @Initial revision
  24. @
  25. text
  26. @/************************************************************
  27. Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
  28.  
  29.                     All Rights Reserved
  30.  
  31. Permission  to  use,  copy,  modify,  and  distribute   this
  32. software  and  its documentation for any purpose and without
  33. fee is hereby granted, provided that the above copyright no-
  34. tice  appear  in all copies and that both that copyright no-
  35. tice and this permission notice appear in  supporting  docu-
  36. mentation,  and  that the names of Sun or MIT not be used in
  37. advertising or publicity pertaining to distribution  of  the
  38. software  without specific prior written permission. Sun and
  39. M.I.T. make no representations about the suitability of this
  40. software for any purpose. It is provided "as is" without any
  41. express or implied warranty.
  42.  
  43. SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
  44. INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
  45. NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
  46. ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  47. ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
  48. PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
  49. OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
  50. THE USE OR PERFORMANCE OF THIS SOFTWARE.
  51.  
  52. ********************************************************/
  53.  
  54. #include    "sun.h"
  55. #include    "keysym.h"
  56.  
  57. /*
  58.  *    XXX - Its not clear what to map these to for now.
  59.  *    keysyms.h doesn't define enough function key names.
  60.  */
  61.  
  62.  
  63. #ifndef    XK_L1
  64. #define    XK_L1    XK_Cancel
  65. #define    XK_L2    XK_Redo
  66. #define    XK_R1    NoSymbol
  67. #define    XK_R2    NoSymbol
  68. #define    XK_R3    NoSymbol
  69. #define    XK_L3    XK_Menu
  70. #define    XK_L4    XK_Undo
  71. #define    XK_R4    NoSymbol
  72. #define    XK_R5    NoSymbol
  73. #define    XK_R6    NoSymbol
  74. #define    XK_L5    XK_Insert
  75. #define    XK_L6    XK_Select
  76. #define    XK_R7    NoSymbol
  77. #define    XK_R8    XK_Up
  78. #define    XK_R9    NoSymbol
  79. #define    XK_L7    XK_Execute
  80. #define    XK_L8    XK_Print
  81. #define    XK_R10    XK_Left
  82. #define    XK_R11    XK_Home
  83. #define    XK_R12    XK_Right
  84. #define    XK_L9    XK_Find
  85. #define    XK_L10    XK_Help
  86. #define    XK_R13    NoSymbol
  87. #define    XK_R14    XK_Down
  88. #define    XK_R15    NoSymbol
  89. #endif
  90.  
  91. #ifdef    notdef
  92. static KeySym KlunkMap[] = {
  93. };
  94.  
  95. static KeySym VT100[] = {
  96. };
  97. #endif
  98.  
  99. static KeySym Sun2Map[] = {
  100.     XK_L1,        NoSymbol,        /* 0x01 */
  101.     NoSymbol,    NoSymbol,        /* 0x02 */
  102.     XK_L2,        NoSymbol,        /* 0x03 */
  103.     NoSymbol,    NoSymbol,        /* 0x4 */
  104.     XK_F1,        NoSymbol,        /* 0x5 */
  105.     XK_F2,        NoSymbol,        /* 0x6 */
  106.     NoSymbol,    NoSymbol,        /* 0x7 */
  107.     XK_F3,        NoSymbol,        /* 0x8 */
  108.     NoSymbol,    NoSymbol,        /* 0x9 */
  109.     XK_F4,        NoSymbol,        /* 0xa */
  110.     NoSymbol,    NoSymbol,        /* 0xb */
  111.     XK_F5,        NoSymbol,        /* 0xc */
  112.     NoSymbol,    NoSymbol,        /* 0xd */
  113.     XK_F6,        NoSymbol,        /* 0xe */
  114.     NoSymbol,    NoSymbol,        /* 0xf */
  115.     XK_F7,        NoSymbol,        /* 0x10 */
  116.     XK_F8,        NoSymbol,        /* 0x11 */
  117.     XK_F9,        NoSymbol,        /* 0x12 */
  118.     XK_Break,    NoSymbol,        /* 0x13 */
  119.     NoSymbol,    NoSymbol,        /* 0x14 */
  120.     XK_R1,        NoSymbol,        /* 0x15 */
  121.     XK_R2,        NoSymbol,        /* 0x16 */
  122.     XK_R3,        NoSymbol,        /* 0x17 */
  123.     NoSymbol,    NoSymbol,        /* 0x18 */
  124.     XK_L3,        NoSymbol,        /* 0x19 */
  125.     XK_L4,        NoSymbol,        /* 0x1a */
  126.     NoSymbol,    NoSymbol,        /* 0x1b */
  127.     NoSymbol,    NoSymbol,        /* 0x1c */
  128.     XK_Escape,    NoSymbol,        /* 0x1d */
  129.     XK_1,        XK_exclam,        /* 0x1e */
  130.     XK_2,        XK_at,            /* 0x1f */
  131.     XK_3,        XK_numbersign,        /* 0x20 */
  132.     XK_4,        XK_dollar,        /* 0x21 */
  133.     XK_5,        XK_percent,        /* 0x22 */
  134.     XK_6,        XK_asciicircum,        /* 0x23 */
  135.     XK_7,        XK_ampersand,        /* 0x24 */
  136.     XK_8,        XK_asterisk,        /* 0x25 */
  137.     XK_9,        XK_parenleft,        /* 0x26 */
  138.     XK_0,        XK_parenright,        /* 0x27 */
  139.     XK_minus,    XK_underscore,        /* 0x28 */
  140.     XK_equal,    XK_plus,        /* 0x29 */
  141.     XK_quoteleft,    XK_asciitilde,        /* 0x2a */
  142.     XK_BackSpace,    NoSymbol,        /* 0x2b */
  143.     NoSymbol,    NoSymbol,        /* 0x2c */
  144.     XK_R4,        NoSymbol,        /* 0x2d */
  145.     XK_R5,        NoSymbol,        /* 0x2e */
  146.     XK_R6,        NoSymbol,        /* 0x2f */
  147.     NoSymbol,    NoSymbol,        /* 0x30 */
  148.     XK_L5,        NoSymbol,        /* 0x31 */
  149.     NoSymbol,    NoSymbol,        /* 0x32 */
  150.     XK_L6,        NoSymbol,        /* 0x33 */
  151.     NoSymbol,    NoSymbol,        /* 0x34 */
  152.     XK_Tab,        NoSymbol,        /* 0x35 */
  153.     XK_Q,        NoSymbol,        /* 0x36 */
  154.     XK_W,        NoSymbol,        /* 0x37 */
  155.     XK_E,        NoSymbol,        /* 0x38 */
  156.     XK_R,        NoSymbol,        /* 0x39 */
  157.     XK_T,        NoSymbol,        /* 0x3a */
  158.     XK_Y,        NoSymbol,        /* 0x3b */
  159.     XK_U,        NoSymbol,        /* 0x3c */
  160.     XK_I,        NoSymbol,        /* 0x3d */
  161.     XK_O,        NoSymbol,        /* 0x3e */
  162.     XK_P,        NoSymbol,        /* 0x3f */
  163.     XK_bracketleft,    XK_braceleft,        /* 0x40 */
  164.     XK_bracketright,    XK_braceright,    /* 0x41 */
  165.     XK_Delete,    NoSymbol,        /* 0x42 */
  166.     NoSymbol,    NoSymbol,        /* 0x43 */
  167.     XK_R7,        NoSymbol,        /* 0x44 */
  168.     XK_Up,        XK_R8,            /* 0x45 */
  169.     XK_R9,        NoSymbol,        /* 0x46 */
  170.     NoSymbol,    NoSymbol,        /* 0x47 */
  171.     XK_L7,        NoSymbol,        /* 0x48 */
  172.     XK_L8,        NoSymbol,        /* 0x49 */
  173.     NoSymbol,    NoSymbol,        /* 0x4a */
  174.     NoSymbol,    NoSymbol,        /* 0x4b */
  175.     XK_Control_L,    NoSymbol,        /* 0x4c */
  176.     XK_A,        NoSymbol,        /* 0x4d */
  177.     XK_S,        NoSymbol,        /* 0x4e */
  178.     XK_D,        NoSymbol,        /* 0x4f */
  179.     XK_F,        NoSymbol,        /* 0x50 */
  180.     XK_G,        NoSymbol,        /* 0x51 */
  181.     XK_H,        NoSymbol,        /* 0x52 */
  182.     XK_J,        NoSymbol,        /* 0x53 */
  183.     XK_K,        NoSymbol,        /* 0x54 */
  184.     XK_L,        NoSymbol,        /* 0x55 */
  185.     XK_semicolon,    XK_colon,        /* 0x56 */
  186.     XK_quoteright,    XK_quotedbl,        /* 0x57 */
  187.     XK_backslash,    XK_bar,            /* 0x58 */
  188.     XK_Return,    NoSymbol,        /* 0x59 */
  189.     NoSymbol,    NoSymbol,        /* 0x5a */
  190.     XK_Left,    XK_R10,            /* 0x5b */
  191.     XK_R11,        NoSymbol,        /* 0x5c */
  192.     XK_Right,    XK_R12,            /* 0x5d */
  193.     NoSymbol,    NoSymbol,        /* 0x5e */
  194.     XK_L9,        NoSymbol,        /* 0x5f */
  195.     NoSymbol,    NoSymbol,        /* 0x60 */
  196.     XK_L10,        NoSymbol,        /* 0x61 */
  197.     NoSymbol,    NoSymbol,        /* 0x62 */
  198.     XK_Shift_L,    NoSymbol,        /* 0x63 */
  199.     XK_Z,        NoSymbol,        /* 0x64 */
  200.     XK_X,        NoSymbol,        /* 0x65 */
  201.     XK_C,        NoSymbol,        /* 0x66 */
  202.     XK_V,        NoSymbol,        /* 0x67 */
  203.     XK_B,        NoSymbol,        /* 0x68 */
  204.     XK_N,        NoSymbol,        /* 0x69 */
  205.     XK_M,        NoSymbol,        /* 0x6a */
  206.     XK_comma,    XK_less,        /* 0x6b */
  207.     XK_period,    XK_greater,        /* 0x6c */
  208.     XK_slash,    XK_question,        /* 0x6d */
  209.     XK_Shift_R,    NoSymbol,        /* 0x6e */
  210.     XK_Linefeed,    NoSymbol,        /* 0x6f */
  211.     XK_R13,        NoSymbol,        /* 0x70 */
  212.     XK_Down,    XK_R14,            /* 0x71 */
  213.     XK_R15,        NoSymbol,        /* 0x72 */
  214.     NoSymbol,    NoSymbol,        /* 0x73 */
  215.     NoSymbol,    NoSymbol,        /* 0x74 */
  216.     NoSymbol,    NoSymbol,        /* 0x75 */
  217.     NoSymbol,    NoSymbol,        /* 0x76 */
  218.     NoSymbol,    NoSymbol,        /* 0x77 */
  219.     XK_Meta_L,    NoSymbol,        /* 0x78 */
  220.     XK_space,    NoSymbol,        /* 0x79 */
  221.     XK_Meta_R,    NoSymbol,        /* 0x7a */
  222.     NoSymbol,    NoSymbol,        /* 0x7b */
  223.     NoSymbol,    NoSymbol,        /* 0x7c */
  224.     NoSymbol,    NoSymbol,        /* 0x7d */
  225.     NoSymbol,    NoSymbol,        /* 0x7e */
  226.     NoSymbol,    NoSymbol,        /* 0x7f */
  227. };
  228.  
  229. static KeySym Sun3Map[] = {
  230.     XK_L1,        NoSymbol,        /* 0x01 */
  231.     NoSymbol,    NoSymbol,        /* 0x02 */
  232.     XK_L2,        NoSymbol,        /* 0x03 */
  233.     NoSymbol,    NoSymbol,        /* 0x4 */
  234.     XK_F1,        NoSymbol,        /* 0x5 */
  235.     XK_F2,        NoSymbol,        /* 0x6 */
  236.     NoSymbol,    NoSymbol,        /* 0x7 */
  237.     XK_F3,        NoSymbol,        /* 0x8 */
  238.     NoSymbol,    NoSymbol,        /* 0x9 */
  239.     XK_F4,        NoSymbol,        /* 0xa */
  240.     NoSymbol,    NoSymbol,        /* 0xb */
  241.     XK_F5,        NoSymbol,        /* 0xc */
  242.     NoSymbol,    NoSymbol,        /* 0xd */
  243.     XK_F6,        NoSymbol,        /* 0xe */
  244.     NoSymbol,    NoSymbol,        /* 0xf */
  245.     XK_F7,        NoSymbol,        /* 0x10 */
  246.     XK_F8,        NoSymbol,        /* 0x11 */
  247.     XK_F9,        NoSymbol,        /* 0x12 */
  248.     XK_Alt_R,    NoSymbol,        /* 0x13 */
  249.     NoSymbol,    NoSymbol,        /* 0x14 */
  250.     XK_R1,        NoSymbol,        /* 0x15 */
  251.     XK_R2,        NoSymbol,        /* 0x16 */
  252.     XK_R3,        NoSymbol,        /* 0x17 */
  253.     NoSymbol,    NoSymbol,        /* 0x18 */
  254.     XK_L3,        NoSymbol,        /* 0x19 */
  255.     XK_L4,        NoSymbol,        /* 0x1a */
  256.     NoSymbol,    NoSymbol,        /* 0x1b */
  257.     NoSymbol,    NoSymbol,        /* 0x1c */
  258.     XK_Escape,    NoSymbol,        /* 0x1d */
  259.     XK_1,        XK_exclam,        /* 0x1e */
  260.     XK_2,        XK_at,            /* 0x1f */
  261.     XK_3,        XK_numbersign,        /* 0x20 */
  262.     XK_4,        XK_dollar,        /* 0x21 */
  263.     XK_5,        XK_percent,        /* 0x22 */
  264.     XK_6,        XK_asciicircum,        /* 0x23 */
  265.     XK_7,        XK_ampersand,        /* 0x24 */
  266.     XK_8,        XK_asterisk,        /* 0x25 */
  267.     XK_9,        XK_parenleft,        /* 0x26 */
  268.     XK_0,        XK_parenright,        /* 0x27 */
  269.     XK_minus,    XK_underscore,        /* 0x28 */
  270.     XK_equal,    XK_plus,        /* 0x29 */
  271.     XK_quoteleft,    XK_asciitilde,        /* 0x2a */
  272.     XK_BackSpace,    NoSymbol,        /* 0x2b */
  273.     NoSymbol,    NoSymbol,        /* 0x2c */
  274.     XK_R4,        NoSymbol,        /* 0x2d */
  275.     XK_R5,        NoSymbol,        /* 0x2e */
  276.     XK_R6,        NoSymbol,        /* 0x2f */
  277.     NoSymbol,    NoSymbol,        /* 0x30 */
  278.     XK_L5,        NoSymbol,        /* 0x31 */
  279.     NoSymbol,    NoSymbol,        /* 0x32 */
  280.     XK_L6,        NoSymbol,        /* 0x33 */
  281.     NoSymbol,    NoSymbol,        /* 0x34 */
  282.     XK_Tab,        NoSymbol,        /* 0x35 */
  283.     XK_Q,        NoSymbol,        /* 0x36 */
  284.     XK_W,        NoSymbol,        /* 0x37 */
  285.     XK_E,        NoSymbol,        /* 0x38 */
  286.     XK_R,        NoSymbol,        /* 0x39 */
  287.     XK_T,        NoSymbol,        /* 0x3a */
  288.     XK_Y,        NoSymbol,        /* 0x3b */
  289.     XK_U,        NoSymbol,        /* 0x3c */
  290.     XK_I,        NoSymbol,        /* 0x3d */
  291.     XK_O,        NoSymbol,        /* 0x3e */
  292.     XK_P,        NoSymbol,        /* 0x3f */
  293.     XK_bracketleft,    XK_braceleft,        /* 0x40 */
  294.     XK_bracketright,    XK_braceright,    /* 0x41 */
  295.     XK_Delete,    NoSymbol,        /* 0x42 */
  296.     NoSymbol,    NoSymbol,        /* 0x43 */
  297.     XK_R7,        NoSymbol,        /* 0x44 */
  298.     XK_Up,        XK_R8,            /* 0x45 */
  299.     XK_R9,        NoSymbol,        /* 0x46 */
  300.     NoSymbol,    NoSymbol,        /* 0x47 */
  301.     XK_L7,        NoSymbol,        /* 0x48 */
  302.     XK_L8,        NoSymbol,        /* 0x49 */
  303.     NoSymbol,    NoSymbol,        /* 0x4a */
  304.     NoSymbol,    NoSymbol,        /* 0x4b */
  305.     XK_Control_L,    NoSymbol,        /* 0x4c */
  306.     XK_A,        NoSymbol,        /* 0x4d */
  307.     XK_S,        NoSymbol,        /* 0x4e */
  308.     XK_D,        NoSymbol,        /* 0x4f */
  309.     XK_F,        NoSymbol,        /* 0x50 */
  310.     XK_G,        NoSymbol,        /* 0x51 */
  311.     XK_H,        NoSymbol,        /* 0x52 */
  312.     XK_J,        NoSymbol,        /* 0x53 */
  313.     XK_K,        NoSymbol,        /* 0x54 */
  314.     XK_L,        NoSymbol,        /* 0x55 */
  315.     XK_semicolon,    XK_colon,        /* 0x56 */
  316.     XK_quoteright,    XK_quotedbl,        /* 0x57 */
  317.     XK_backslash,    XK_bar,            /* 0x58 */
  318.     XK_Return,    NoSymbol,        /* 0x59 */
  319.     NoSymbol,    NoSymbol,        /* 0x5a */
  320.     XK_Left,    XK_R10,            /* 0x5b */
  321.     XK_R11,        NoSymbol,        /* 0x5c */
  322.     XK_Right,    XK_R12,            /* 0x5d */
  323.     NoSymbol,    NoSymbol,        /* 0x5e */
  324.     XK_L9,        NoSymbol,        /* 0x5f */
  325.     NoSymbol,    NoSymbol,        /* 0x60 */
  326.     XK_L10,        NoSymbol,        /* 0x61 */
  327.     NoSymbol,    NoSymbol,        /* 0x62 */
  328.     XK_Shift_L,    NoSymbol,        /* 0x63 */
  329.     XK_Z,        NoSymbol,        /* 0x64 */
  330.     XK_X,        NoSymbol,        /* 0x65 */
  331.     XK_C,        NoSymbol,        /* 0x66 */
  332.     XK_V,        NoSymbol,        /* 0x67 */
  333.     XK_B,        NoSymbol,        /* 0x68 */
  334.     XK_N,        NoSymbol,        /* 0x69 */
  335.     XK_M,        NoSymbol,        /* 0x6a */
  336.     XK_comma,    XK_less,        /* 0x6b */
  337.     XK_period,    XK_greater,        /* 0x6c */
  338.     XK_slash,    XK_question,        /* 0x6d */
  339.     XK_Shift_R,    NoSymbol,        /* 0x6e */
  340.     XK_Linefeed,    NoSymbol,        /* 0x6f */
  341.     XK_R13,        NoSymbol,        /* 0x70 */
  342.     XK_Down,    XK_R14,            /* 0x71 */
  343.     XK_R15,        NoSymbol,        /* 0x72 */
  344.     NoSymbol,    NoSymbol,        /* 0x73 */
  345.     NoSymbol,    NoSymbol,        /* 0x74 */
  346.     NoSymbol,    NoSymbol,        /* 0x75 */
  347.     NoSymbol,    NoSymbol,        /* 0x76 */
  348.     XK_Caps_Lock,    NoSymbol,        /* 0x77 */
  349.     XK_Meta_L,    NoSymbol,        /* 0x78 */
  350.     XK_space,    NoSymbol,        /* 0x79 */
  351.     XK_Meta_R,    NoSymbol,        /* 0x7a */
  352.     NoSymbol,    NoSymbol,        /* 0x7b */
  353.     NoSymbol,    NoSymbol,        /* 0x7c */
  354.     NoSymbol,    NoSymbol,        /* 0x7d */
  355.     NoSymbol,    NoSymbol,        /* 0x7e */
  356.     NoSymbol,    NoSymbol,        /* 0x7f */
  357. };
  358.  
  359. static KeySym Sun4Map[] = {
  360.         XK_L1,          NoSymbol,               /* 0x01 */
  361.         NoSymbol,       NoSymbol,               /* 0x02 */
  362.         XK_L2,          NoSymbol,               /* 0x03 */
  363.         NoSymbol,       NoSymbol,               /* 0x4 */
  364.         XK_F1,          NoSymbol,               /* 0x5 */
  365.         XK_F2,          NoSymbol,               /* 0x6 */
  366.         XK_F10,         NoSymbol,               /* 0x7 */
  367.         XK_F3,          NoSymbol,               /* 0x8 */
  368.         XK_F11,         NoSymbol,               /* 0x9 */
  369.         XK_F4,          NoSymbol,               /* 0xa */
  370.         XK_F12,         NoSymbol,               /* 0xb */
  371.         XK_F5,          NoSymbol,               /* 0xc */
  372.         NoSymbol,       NoSymbol,               /* 0xd */
  373.         XK_F6,          NoSymbol,               /* 0xe */
  374.         NoSymbol,       NoSymbol,               /* 0xf */
  375.         XK_F7,          NoSymbol,               /* 0x10 */
  376.         XK_F8,          NoSymbol,               /* 0x11 */
  377.         XK_F9,          NoSymbol,               /* 0x12 */
  378.     XK_Alt_L,    NoSymbol,        /* 0x13 */
  379.         NoSymbol,       NoSymbol,               /* 0x14 */
  380.         XK_R1,          XK_Pause,               /* 0x15 */
  381.         XK_R2,          NoSymbol,               /* 0x16 */
  382.         XK_R3,          NoSymbol,               /* 0x17 */
  383.         NoSymbol,       NoSymbol,               /* 0x18 */
  384.         XK_L3,          NoSymbol,               /* 0x19 */
  385.         XK_L4,          NoSymbol,               /* 0x1a */
  386.         NoSymbol,       NoSymbol,               /* 0x1b */
  387.         NoSymbol,       NoSymbol,               /* 0x1c */
  388.         XK_Escape,      NoSymbol,               /* 0x1d */
  389.         XK_1,           XK_exclam,              /* 0x1e */
  390.         XK_2,           XK_at,                  /* 0x1f */
  391.         XK_3,           XK_numbersign,          /* 0x20 */
  392.         XK_4,           XK_dollar,              /* 0x21 */
  393.         XK_5,           XK_percent,             /* 0x22 */
  394.         XK_6,           XK_asciicircum,         /* 0x23 */
  395.         XK_7,           XK_ampersand,           /* 0x24 */
  396.         XK_8,           XK_asterisk,            /* 0x25 */
  397.         XK_9,           XK_parenleft,           /* 0x26 */
  398.         XK_0,           XK_parenright,          /* 0x27 */
  399.         XK_minus,       XK_underscore,          /* 0x28 */
  400.         XK_equal,       XK_plus,                /* 0x29 */
  401.         XK_quoteleft,   XK_asciitilde,          /* 0x2a */
  402.         XK_BackSpace,   NoSymbol,               /* 0x2b */
  403.         NoSymbol,       NoSymbol,               /* 0x2c */
  404.         XK_R4,          XK_KP_Equal,        /* 0x2d */
  405.         XK_R5,          XK_KP_Divide,        /* 0x2e */
  406.         XK_R6,          XK_KP_Multiply,        /* 0x2f */
  407.         NoSymbol,       NoSymbol,               /* 0x30 */
  408.         XK_L5,          NoSymbol,               /* 0x31 */
  409.         XK_Delete,      XK_KP_Decimal,          /* 0x32 */
  410.         XK_L6,          NoSymbol,               /* 0x33 */
  411.         NoSymbol,       NoSymbol,               /* 0x34 */
  412.         XK_Tab,         NoSymbol,               /* 0x35 */
  413.         XK_Q,           NoSymbol,               /* 0x36 */
  414.         XK_W,           NoSymbol,               /* 0x37 */
  415.         XK_E,           NoSymbol,               /* 0x38 */
  416.         XK_R,           NoSymbol,               /* 0x39 */
  417.         XK_T,           NoSymbol,               /* 0x3a */
  418.         XK_Y,           NoSymbol,               /* 0x3b */
  419.         XK_U,           NoSymbol,               /* 0x3c */
  420.         XK_I,           NoSymbol,               /* 0x3d */
  421.         XK_O,           NoSymbol,               /* 0x3e */
  422.         XK_P,           NoSymbol,               /* 0x3f */
  423.         XK_bracketleft, XK_braceleft,           /* 0x40 */
  424.         XK_bracketright,XK_braceright,          /* 0x41 */
  425.         XK_Delete,      NoSymbol,               /* 0x42 */
  426.         XK_Multi_key,   NoSymbol,               /* 0x43 */
  427.         XK_R7,          XK_KP_7,                /* 0x44 */
  428.         XK_Up,          XK_KP_8,                /* 0x45 */
  429.         XK_R9,          XK_KP_9,                /* 0x46 */
  430.         XK_KP_Subtract, XK_KP_Subtract,         /* 0x47 */
  431.         XK_L7,          NoSymbol,               /* 0x48 */
  432.         XK_L8,          NoSymbol,               /* 0x49 */
  433.         NoSymbol,       NoSymbol,               /* 0x4a */
  434.         NoSymbol,       NoSymbol,               /* 0x4b */
  435.         XK_Control_L,   NoSymbol,               /* 0x4c */
  436.         XK_A,           NoSymbol,               /* 0x4d */
  437.         XK_S,           NoSymbol,               /* 0x4e */
  438.         XK_D,           NoSymbol,               /* 0x4f */
  439.         XK_F,           NoSymbol,               /* 0x50 */
  440.         XK_G,           NoSymbol,               /* 0x51 */
  441.         XK_H,           NoSymbol,               /* 0x52 */
  442.         XK_J,           NoSymbol,               /* 0x53 */
  443.         XK_K,           NoSymbol,               /* 0x54 */
  444.         XK_L,           NoSymbol,               /* 0x55 */
  445.         XK_semicolon,   XK_colon,               /* 0x56 */
  446.         XK_quoteright,  XK_quotedbl,            /* 0x57 */
  447.         XK_backslash,   XK_bar,                 /* 0x58 */
  448.         XK_Return,      NoSymbol,               /* 0x59 */
  449.         XK_KP_Enter,    XK_KP_Enter,            /* 0x5a */
  450.         XK_Left,        XK_KP_4,                /* 0x5b */
  451.         XK_R11,         XK_KP_5,                /* 0x5c */
  452.         XK_Right,       XK_KP_6,                /* 0x5d */
  453.         XK_Insert,       XK_KP_0,                /* 0x5e */
  454.         XK_L9,          NoSymbol,               /* 0x5f */
  455.         NoSymbol,       NoSymbol,               /* 0x60 */
  456.         XK_L10,         NoSymbol,               /* 0x61 */
  457.         XK_Num_Lock,    XK_Num_Lock,            /* 0x62 */
  458.         XK_Shift_L,     NoSymbol,               /* 0x63 */
  459.         XK_Z,           NoSymbol,               /* 0x64 */
  460.         XK_X,           NoSymbol,               /* 0x65 */
  461.         XK_C,           NoSymbol,               /* 0x66 */
  462.         XK_V,           NoSymbol,               /* 0x67 */
  463.         XK_B,           NoSymbol,               /* 0x68 */
  464.         XK_N,           NoSymbol,               /* 0x69 */
  465.         XK_M,           NoSymbol,               /* 0x6a */
  466.         XK_comma,       XK_less,                /* 0x6b */
  467.         XK_period,      XK_greater,             /* 0x6c */
  468.         XK_slash,       XK_question,            /* 0x6d */
  469.         XK_Shift_R,     NoSymbol,               /* 0x6e */
  470.         XK_Linefeed,    NoSymbol,               /* 0x6f */
  471.         XK_R13,         XK_KP_1,                /* 0x70 */
  472.         XK_Down,        XK_KP_2,                /* 0x71 */
  473.         XK_R15,         XK_KP_3,                /* 0x72 */
  474.         NoSymbol,       NoSymbol,               /* 0x73 */
  475.         NoSymbol,       NoSymbol,               /* 0x74 */
  476.         NoSymbol,       NoSymbol,               /* 0x75 */
  477.         XK_Help,        XK_Help,                /* 0x76 */
  478.         XK_Caps_Lock,   NoSymbol,               /* 0x77 */
  479.         XK_Meta_L,      NoSymbol,               /* 0x78 */
  480.         XK_space,       NoSymbol,               /* 0x79 */
  481.         XK_Meta_R,      NoSymbol,               /* 0x7a */
  482.         NoSymbol,       NoSymbol,               /* 0x7b */
  483.         NoSymbol,       NoSymbol,               /* 0x7c */
  484.         XK_KP_Add,      XK_KP_Add,              /* 0x7d */
  485.         NoSymbol,       NoSymbol,               /* 0x7e */
  486.         NoSymbol,       NoSymbol,               /* 0x7f */
  487. };
  488.  
  489.  
  490. KeySymsRec sunKeySyms[] = {
  491.     /*    map       minKeyCode    maxKC    width */
  492. #ifdef    notdef
  493.     KlunkMap,        1,    0x7a,    2,
  494.     VT100Map,        1,    0x7a,    2,
  495. #else
  496.     (KeySym *)NULL,    0,    0,    0,
  497.     (KeySym *)NULL,    0,    0,    0,
  498. #endif
  499.     Sun2Map,        1,    0x7a,    2,
  500.     Sun3Map,        1,    0x7a,    2,
  501.     Sun4Map,        1,    0x7d,    2,
  502. };
  503.  
  504. #define    cT    (ControlMask)
  505. #define    sH    (ShiftMask)
  506. #define    lK    (LockMask)
  507. #define    mT    (Mod1Mask)
  508. static CARD8 type2modmap[MAP_LENGTH] = {
  509.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 00-0f */
  510.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 10-1f */
  511.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 20-2f */
  512.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 30-3f */
  513.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 40-4f */
  514.     0,  0,  0,  cT, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 50-5f */
  515.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  sH, 0,  0,  0,  0,  0, /* 60-6f */
  516.     0,  0,  0,  0,  0,  sH, 0,  0,  0,  0,  0,  0,  0,  0,  0,  mT,/* 70-7f */
  517.     0,  mT, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 80-8f */
  518.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 90-9f */
  519.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* a0-af */
  520.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* b0-bf */
  521.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* c0-cf */
  522.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* d0-df */
  523.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* e0-ef */
  524.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* f0-ff */
  525. };
  526.  
  527. static CARD8 type3modmap[MAP_LENGTH] = {
  528.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 00-0f */
  529.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 10-1f */
  530.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 20-2f */
  531.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 30-3f */
  532.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 40-4f */
  533.     0,  0,  0,  cT, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 50-5f */
  534.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  sH, 0,  0,  0,  0,  0, /* 60-6f */
  535.     0,  0,  0,  0,  0,  sH, 0,  0,  0,  0,  0,  0,  0,  0,  lK, mT,/* 70-7f */
  536.     0,  mT, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 80-8f */
  537.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 90-9f */
  538.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* a0-af */
  539.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* b0-bf */
  540.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* c0-cf */
  541.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* d0-df */
  542.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* e0-ef */
  543.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* f0-ff */
  544. };
  545.  
  546. static CARD8 type4modmap[MAP_LENGTH] = {
  547.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 00-0f */
  548.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 10-1f */
  549.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 20-2f */
  550.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 30-3f */
  551.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 40-4f */
  552.     0,  0,  0,  cT, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 50-5f */
  553.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  sH, 0,  0,  0,  0,  0, /* 60-6f */
  554.     0,  0,  0,  0,  0,  sH, 0,  0,  0,  0,  0,  0,  0,  0,  lK, mT,/* 70-7f */
  555.     0,  mT, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 80-8f */
  556.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 90-9f */
  557.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* a0-af */
  558.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* b0-bf */
  559.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* c0-cf */
  560.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* d0-df */
  561.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* e0-ef */
  562.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* f0-ff */
  563. };
  564.  
  565. CARD8 *sunModMap[] = {
  566.     NULL,
  567.     NULL,
  568.     type2modmap,
  569.     type3modmap,
  570.     type4modmap,
  571. };
  572. @
  573.